package view;

import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Font;
import java.util.ArrayList;

import javax.swing.JComboBox;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

import controlador.Tragamonedas;

import clases.casillas.Casilla;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class PanelAltaPremio extends JPanel implements ActionListener {

	private static final long serialVersionUID = 1L;
	private JTextField textField_MontoPremio;
	private Tragamonedas sys;
	private JLabel lblAltaPremio;
	private JComboBox<String> comboBox_CasillasDisponibles;
	private JComboBox<String> comboBox_CasillasSeleccionadas;
	private JButton btnAgregarCasilla;
	private JLabel lblMontoPremio;
	private JButton btnAltaPremio;
	private JButton btnEliminarCasilla;


	public PanelAltaPremio(final Tragamonedas sys) {
		setLayout(null);
		this.sys = sys;
		
		lblAltaPremio = new JLabel("Alta Premio");
		lblAltaPremio.setBounds(105, 11, 75, 16);
		lblAltaPremio.setFont(new Font("Tahoma", Font.BOLD, 13));
		add(lblAltaPremio);


		comboBox_CasillasDisponibles = new JComboBox<String>();
		comboBox_CasillasDisponibles.setBounds(26, 59, 115, 22);
		add(comboBox_CasillasDisponibles);

		ArrayList<Casilla> tempCasillas = this.sys.getCasillas();
		for (Casilla casilla : tempCasillas) {
			comboBox_CasillasDisponibles.addItem(casilla.getNombre());
		}

		comboBox_CasillasSeleccionadas = new JComboBox<String>();
		comboBox_CasillasSeleccionadas.setBounds(26, 92, 115, 22);
		add(comboBox_CasillasSeleccionadas);

		btnAgregarCasilla = new JButton("Agregar Casilla");
		btnAgregarCasilla.addActionListener(this);
		btnAgregarCasilla.setBounds(148, 59, 138, 23);
		add(btnAgregarCasilla);

		btnEliminarCasilla = new JButton("Eliminar Casilla");
		btnEliminarCasilla.addActionListener(this);
		btnEliminarCasilla.setBounds(148, 92, 138, 23);
		add(btnEliminarCasilla);

		lblMontoPremio = new JLabel("Monto Premio:");
		lblMontoPremio.setBounds(26, 138, 112, 14);
		add(lblMontoPremio);

		textField_MontoPremio = new JTextField();
		textField_MontoPremio.setBounds(155, 135, 131, 20);
		add(textField_MontoPremio);
		textField_MontoPremio.setColumns(10);

		btnAltaPremio = new JButton("Alta Premio");
		btnAltaPremio.addActionListener(this);
		btnAltaPremio.setBounds(26, 186, 112, 23);
		add(btnAltaPremio);

	}

	@Override
	public void actionPerformed(ActionEvent event) {
		if (event.getSource() == btnAgregarCasilla){
			comboBox_CasillasSeleccionadas
			.addItem((String) comboBox_CasillasDisponibles
					.getSelectedItem());
		}else if (event.getSource()== btnEliminarCasilla){
			comboBox_CasillasSeleccionadas
			.removeItem(comboBox_CasillasSeleccionadas
					.getSelectedItem());
		}else if (event.getSource() == btnAltaPremio){
			ArrayList<String> tempListaCasillas = new ArrayList<String>();

			int tempInt = comboBox_CasillasSeleccionadas.getItemCount();
			for (int i = 0; i < tempInt; i++) {
				tempListaCasillas.add((String) comboBox_CasillasSeleccionadas
						.getItemAt(i));
			}
			if (this.sys.AltaPremio(tempListaCasillas, Float.parseFloat(textField_MontoPremio.getText()))){
			
			JOptionPane.showMessageDialog(null,
						"Se ha Agregado el premio", "Informacion",
						JOptionPane.OK_OPTION);
			}else{
			JOptionPane.showMessageDialog(null,
						"Premio invalido", "Advertencia",
						JOptionPane.OK_OPTION);
			}
		}
		
	}

}
